package com.xc.disk.service;

import com.xc.disk.info.TokenInfo;
import com.xc.disk.bean.ForgetBean;
import com.xc.disk.bean.LoginBean;
import com.xc.disk.bean.RegisterBean;
import com.xc.disk.dto.LoginDto;
import com.xc.disk.dto.UserDto;
import com.xc.disk.dto.VerifyAccountDto;

/**
 * <p>项目名称: Stars</p>
 * <p>描述: 授权接口</p>
 * <P>创建人:小程 </p>
 * <P>创建人邮箱: 779943476@qq.com</p>
 * <p>创建时间: 2019/10/24</p>
 *
 * @version v1.0
 */
public interface AuthorizeService {
    /**
     * 登录，获取token
     *
     * @param loginBean 登录参数
     * @return 返回token信息
     */
    public LoginDto login(LoginBean loginBean, String clientIp);

    /**
     * 更新token信息
     *
     * @param token token
     * @return 返回token信息
     */
    public TokenInfo<UserDto> updateToken(String token, String clientIp);

    /**
     * 删除token信息
     *
     * @param token token
     */
    public void deleteToken(String token);

    /**
     * 注册
     *
     * @param registerBean 注册参数信息
     * @return 登录成功信息
     */
    public LoginDto register(RegisterBean registerBean, String clientIp);

    /**
     * 找回密码
     *
     * @param forgetBean 找回密码需要参数
     */
    public void forgetPassword(ForgetBean forgetBean);

    /**
     * 验证账号
     *
     * @param account 账号
     */
    public VerifyAccountDto verifyAccount(String account);
}
